﻿#pragma once

class CLocalisation;
class CTerrainTypeInfo;
class CTerrainIDInfo;
class CLandedTitlesProperty;
class CProvincePosition;
class CCharactersPorperty;
/*
这个类用来管理脚本数据
*/
class CScriptDataMgr
{
	friend class CDataMgr;	// 只有CDataMgr能实例化

public:
	const CLocalisation* GetLocalisationCPtr() const { return m_pLocalisation; }
private:
	CLocalisation* m_pLocalisation;
public:
	const CTerrainIDInfo* GetTerrainIDInfoCPtr() const { return m_pTerrainIDInfo; }
private:
	CTerrainIDInfo* m_pTerrainIDInfo;
public:
	const CTerrainTypeInfo* GetTerrainTypeInfoCPtr() const { return m_pTerrainTypeInfo; }
private:
	CTerrainTypeInfo* m_pTerrainTypeInfo;
public:
	const CLandedTitlesProperty* GetLandedTitlesPropertyCPtr() const { return m_pLandedTitlesProperty; }
private:
	CLandedTitlesProperty* m_pLandedTitlesProperty;
public:
	const CProvincePosition* GetProvincePositionCPtr() const { return m_pProvincePosition; }
private:
	CProvincePosition* m_pProvincePosition;
public:
	const CCharactersPorperty* GetCharactersPorpertyCPtr() const { return m_pCharactersPorperty; }
private:
	CCharactersPorperty* m_pCharactersPorperty;

public:
	void LoadScript();	// 加载脚本数据

public:
	~CScriptDataMgr();
private:
	CScriptDataMgr();
	CScriptDataMgr(const CScriptDataMgr&) = delete;
	CScriptDataMgr& operator =(const CScriptDataMgr&) = delete;

	bool IsDataComplete() const;
};